#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName  :2.0.8 进程通讯demo.py
# @Time      :2020/7/14 14:16
# @Author    :亮亮
# @说明       :进程通讯demo
# @总结       :
import multiprocessing


def down_data(q):
    """
    下载功能
    :return:
    """
    # 模拟从网络下载数据
    data = ["11", "22", "33"]

    # 向队列里面写数据
    for temp in data:
        q.put(temp)

    print("----下载器已经完成下载，并存入队列----")


def analysis_data(q):
    """
    数据处理
    :return:
    """
    # 创建空列表
    wait_analysis_data = list()

    # 从队列中获取数据
    while True:
        data = q.get()
        wait_analysis_data.append(data)

        if q.empty():  # 判断数据是否为空
            break

    # 模拟数据处理
    print(wait_analysis_data)


def main():
    # 1.创建一个队列
    q = multiprocessing.Queue()

    # 2.创建多个进程，将队列当做实参放到队列里面
    p1 = multiprocessing.Process(target=down_data, args=(q,))
    p2 = multiprocessing.Process(target=analysis_data, args=(q,))

    # 执行进程
    p1.start()
    p2.start()


if __name__ == '__main__':
    main()
